package br.ufrj.dcc.so.trab2.manager;

import br.ufrj.dcc.so.trab2.Barbearia;
import br.ufrj.dcc.so.trab2.Forte;
import br.ufrj.dcc.so.trab2.entity.Cliente;
import br.ufrj.dcc.so.trab2.entity.Pausa;


public class TenenteEscovinha implements Runnable {
	
	private Barbearia barbearia;
	private Forte forte;
	private boolean vivo = true;
	private int cicloVida = 100;
	
	/**
	 * Construtor
	 * 
	 * O General Dureza queria saber se o atendimento da barbearia est� satisfat�rio e 
	 * para tal pediu que o Tenente Escovinha preparasse um relat�rio das atividades 
	 * da barbearia. Para n�o desapontar seu superior a cada 3 segundos o tenente verifica 
	 * o estado da barbearia e ao final de cada dia elabora um relat�rio com as seguintes
	 *  informa��es:
	 *  - Estado de ocupa��o da(s) cadeira(s) (% por categoria (oficial, sargento, pra�a e livre)
	 *  - Comprimento m�dio das filas de cada categoria
	 *  - Tempo m�dio de atendimento por categoria
	 *  - Tempo m�dio de espera por categoria
	 *  - N�mero de atendimentos por categoria
	 *  - N�mero total de clientes por categoria (oficiais, sargentos, cabos e pausa)
	 *  
	 */
	
	public TenenteEscovinha(Forte forte) {
		this.forte = forte;
		vivo = true;
		this.barbearia = forte.barbearia;
		System.out.println("TeneteEscovinha criado em :\t"+System.currentTimeMillis());
	}

	/**
	 * Mátodo que permite atualizar o relatorio de acordo com  o status atual da Barbearia
	 * 
	 * @return Resposta dizendo que o status foi colido.
	 */
	public boolean verificarEstado( ) {
		
		// TODO verificarEstado - Fazer o escovinha verificar o estado da barbearia e salvar no objeto apropriado
		return true;

	}
	
	public void mata()
	{
		vivo = false;
	}

	@Override
	public void run() {
		while(vivo)
		{
			/*
			 * Ele esta vivo e a cada 3 segudos atualiza o relatorio
			 */

			verificarEstado();
			
			//Espera 3 segundos
			try {
				Thread.sleep(3);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
			//morte prematura
			if(--cicloVida<0)vivo=false;
		}		

		System.out.println("TeneteEscovinha morreu em :\t"+System.currentTimeMillis());
	}
	
	

}
